パソコン活用研究PCマニアックの道(アセンブラ、DOS、Windows、旧型PCの活用研究)
PL/Iの入手
1 PL/I
昔のコンピューターの本を引っ張り出してパラパラとみてみると、PL/Iは、Fortran,Cobol,APL
などのプログラム言語のいいところだけを抽出して作られた言語であり、非常に多彩な機能を持っている、
等の説明が散見される。
どうやら、いいとこどりのプログラム言語らしいのだが、Cobol同様これまた、パソコンで個人が趣味で
使うような代物ではないので、PC用のPL/Iのコンパイラというのはほとんど存在しないようだ。
ましてや、フリーコンパイラとなると、存在は限りなくゼロに近いのではないだろうか。
PC用のPL/Iコンパイラといえば、はるか昔(8bitの時代)のことだが、CP/M用にPL/Iコンパイラがあった。
8bitのパソコンで使えるPL/Iのコンパイラがあったというのは、今考えても驚き!の世界だが、確かにあった。
おじさんも、そいつでごく簡単なプログラムをひとつ、ふたつ書いたことがある。しかし、なんせそれっきりだから、
PL/Iについてはほとんど覚えていない。
最近、いろんな言語をつまみぐいしているうちに、そう言えばPL/Iとかいうのがあったなあ、と思い出して
Web上をあちこち探してみたが、商用の本格的(相当ヘービーなもの)はあるが、軽く趣味で使えるような
ものはちょっと見あたらなかった。
唯一、RunPliというPL/I風のインタプリタ(DOS用)が見つかった。これも、今ではどこからGETしたか
わからなくなっているので、いちおうダウンロードできるようにしておきます。
ダウンロード RunPli
2 RunPli
これは、PL/I風のインタプリタです。DOS用です。あくまでもPL/I風ではありますが、PL/Iとはかなり違います。
PL/Iの風に少し当たってみたいという人は、御試し下さい。
しかし、小さなインタプリタでフリーですから、機能に多くは望まないでください。
(常磐ハワイアンセンターに行って、ハワイに行ったつもりになるといったレベルで考えて下さい)
ざっとみたところ、GOTO文や、ユーザー関数(CALLでの呼び出し)といった、プログラムの制御用の命令
が実装されていないので、凝ったことはできなさそうです。ただし、Cによるソースがついてますので、
力量のある方は、ご自分で機能追加してみてもいいかも知れません。そうしたら、おじさんにも分けて下さい。
インタプリタは、run.exe です。
>run <source file>
で実行されます。ソースファイルはもちろんTEXTファイルです。
簡単な例をみてみましょう。ユークリッドご除法により最大公約数を求めるプログラムです。
D:\runpli1a>type test.txt print(sysprint,'最大公約数--ユークリッドご除法による'); putcrlf; print(sysprint,'整数を2つ入力して下さい 整数と整数の間は空白を入れて下さい') putcrlf; a=getint; b=getint; finish=0; do while(finish=0); temp=mod(a,b); putcrlf; if temp=0 then do; print(sysprint,'最大公約数 ',b); finish=1; end; else do; print(sysprint,b,' ',temp); a=b; b=temp; end; end; D:\runpli1a>run test.txt 最大公約数--ユークリッドご除法による 整数を2つ入力して下さい 整数と整数の間は空白を入れて下さい 455 250 250 205 205 45 45 25 25 20 20 5 最大公約数 5 |